package com.ybf.user.dal.enums;

/**
 * YesOrNoEnum
 *
 * @author poyangchen
 */
public enum YesOrNoEnum {

    /**
     * 正常
     */
    YES("是", 1),

    /**
     * 删除
     */
    NO("否", 0);

    private String desc;

    private Integer value;

    YesOrNoEnum(String desc, Integer value) {
        this.desc = desc;
        this.value = value;
    }

    public Integer getValue() {
        return value;
    }

    /**
     * 通过反射由handler调用获取枚举,在查询中进行转换(value to enum)
     *
     * @param v
     * @return
     */
    public static YesOrNoEnum getEnum(Integer v) {
        if (v == null) {
            return null;
        }

        for (YesOrNoEnum e : values()) {
            if (e.getValue().equals(v)) {
                return e;
            }
        }
        return null;
    }

    /**
     * 通过反射由handler调用获取value，在更新和新增中进行转换(enum to value)
     *
     * @param name
     * @return
     */
    public static Integer getValue(String name) {
        for (YesOrNoEnum e : values()) {
            if (e.name().equals(name)) {
                return e.getValue();
            }
        }
        return -1;
    }

    public boolean equals(Integer type) {
        if (type == null) {
            return false;
        }
        return this.value == type.intValue();
    }
}
